Prolog (PROgramming in LOGic) er et deklarativt og logikbaseret programmeringssprog .
Programmering i Prolog er programmering i logik. Man skriver programmer ved at opstille en sammenhæng af logiske udsagn. Dette medfører et højere abstraktionsniveau i den forstand, at man som programmør bevæger sig væk fra, hvordan man løser et givet problem i de mere maskinnære programmeringssprog til, hvad man gør for at løse det – og dette udtrykt i logik.
Et eksempel på et prolog-program, der kan udtrykke en familie-relation, kan være:
mand(harald). mand(gorm). kvinde(thyra). son_af(harald, gorm). son_af(harald, thyra). far(X,Y) :- son_af(Y,X), mand(X).
Dette læses, at først har vi en række fakta, fx Harald og Gorm er mænd, mens Thyra deklareres som kvinde. Så defineres et prædikat, søn af (son_af), som kan udtrykke, at Harald er søn af Gorm.
Nu kan vi bygge videre på programmet og skabe en far-relation, der skal læses sådan, at far gælder for X og Y, hvis X er en mand, og der er et son_af-relation mellem Y og X.
Nu kan prolog-fortolkeren spørges,
>far(gorm, harald)?
Variablerne X instantieres til gorm og Y til harald, hvorefter der fortsættes til son_af(harald, gorm), hvilket også lykkedes. Derefter prøves mand(gorm), hvilket lykkedes.Der svares yes!
Nu prøver vi om
>far(thyra, harald)?
kan lykkes!
Først instantieres variablerne og herefter spørges, om Harald er son_af Thyra, hvilket lykkedes, men da vi kommer til mand(X), så kan vi ikke finde mand(thyra) i databasen, og fortolkeren returnerer et no.
Familieeksemplet kan naturligvis udbygges i det uendelige.
© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search